{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "ce02ad44-4430-4a07-873b-bde25e0ab284",
   "metadata": {},
   "source": [
    "# Using a Regression Neural Network to Predict Housing Prices in Hyderabad"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "432cff3b-1584-4f35-bdb6-457b3c6e8d65",
   "metadata": {},
   "outputs": [],
   "source": [
    "# imports\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy\n",
    "import pandas\n",
    "import tensorflow\n",
    "import tensorflow.keras\n",
    "from tensorflow.keras.models import Sequential\n",
    "from tensorflow.keras.layers import Dense, Dropout, LeakyReLU\n",
    "\n",
    "# Setting random seeds to get reproducible results\n",
    "numpy.random.seed(0)\n",
    "tensorflow.random.set_seed(1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "e66c99a5-7aaa-4779-8a92-3b24fcc8781f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Helpers & Preprocessing Functions\n",
    "\n",
    "def standardize(matrix):\n",
    "    \"\"\"\n",
    "    Adds a tiny offset to prevent dividing by 0\n",
    "    \"\"\"\n",
    "    offset = 1e-6\n",
    "    mean = numpy.mean(matrix)\n",
    "    std = numpy.std(matrix) + offset\n",
    "    numerator = numpy.subtract(matrix,mean)\n",
    "\n",
    "    return numpy.divide(numerator, std)\n",
    "\n",
    "def process_housing(dataframe):\n",
    "    \"\"\"\n",
    "    The columns appear to be categorical, so we won't scale\n",
    "    The 9's appear to be NAN, so we'll drop those.\n",
    "    \"\"\"\n",
    "    # Find any row with a 9\n",
    "    mask_has_value = dataframe.iloc[:, :] == 9\n",
    "    mask_has_value = mask_has_value.any(axis=1)\n",
    "\n",
    "    return dataframe[~mask_has_value]\n",
    "\n",
    "def process_features(dataframe):\n",
    "    \"\"\"\n",
    "    Removes Location since it's text\n",
    "    Standardizes non-categorical columns\n",
    "    \"\"\"\n",
    "    columns_drop = ['Price', 'Location']\n",
    "    columns_continuous = ['Area'] # 'No. of Bedrooms'\n",
    "\n",
    "    dataframe_p = (\n",
    "        dataframe.drop(columns=columns_drop)\n",
    "    )\n",
    "    for column in columns_continuous:\n",
    "        dataframe_p.loc[:, column] = standardize(dataframe_p[column])\n",
    "\n",
    "    return dataframe_p"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2a3499f1-270d-40ca-9214-ccefee0cc663",
   "metadata": {},
   "source": [
    "## Loading and preprocessing the dataset\n",
    "\n",
    "The dataset has mostly binary columns (1 or 0), so we'll ignore the text column and scale area columns to help the model. Number of rooms can be treated as a categorical, so we'll leave it intact. Also, some data values are just filled with 9 that don't fit the pattern with the rest of the data. Without the dataset's documentation we can't do anything about it, so we'll drop them."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "107eb706-a054-469a-8457-360b4d005623",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Price</th>\n",
       "      <th>Area</th>\n",
       "      <th>Location</th>\n",
       "      <th>No. of Bedrooms</th>\n",
       "      <th>Resale</th>\n",
       "      <th>MaintenanceStaff</th>\n",
       "      <th>Gymnasium</th>\n",
       "      <th>SwimmingPool</th>\n",
       "      <th>LandscapedGardens</th>\n",
       "      <th>JoggingTrack</th>\n",
       "      <th>...</th>\n",
       "      <th>LiftAvailable</th>\n",
       "      <th>BED</th>\n",
       "      <th>VaastuCompliant</th>\n",
       "      <th>Microwave</th>\n",
       "      <th>GolfCourse</th>\n",
       "      <th>TV</th>\n",
       "      <th>DiningTable</th>\n",
       "      <th>Sofa</th>\n",
       "      <th>Wardrobe</th>\n",
       "      <th>Refrigerator</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6968000</td>\n",
       "      <td>1340</td>\n",
       "      <td>Nizampet</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>29000000</td>\n",
       "      <td>3498</td>\n",
       "      <td>Hitech City</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6590000</td>\n",
       "      <td>1318</td>\n",
       "      <td>Manikonda</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5739000</td>\n",
       "      <td>1295</td>\n",
       "      <td>Alwal</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5679000</td>\n",
       "      <td>1145</td>\n",
       "      <td>Kukatpally</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Price  Area     Location  No. of Bedrooms  Resale  MaintenanceStaff  \\\n",
       "0   6968000  1340     Nizampet                2       0                 0   \n",
       "1  29000000  3498  Hitech City                4       0                 0   \n",
       "2   6590000  1318    Manikonda                2       0                 0   \n",
       "3   5739000  1295        Alwal                3       1                 0   \n",
       "4   5679000  1145   Kukatpally                2       0                 0   \n",
       "\n",
       "   Gymnasium  SwimmingPool  LandscapedGardens  JoggingTrack  ...  \\\n",
       "0          1             1                  1             1  ...   \n",
       "1          1             1                  1             1  ...   \n",
       "2          1             0                  0             0  ...   \n",
       "3          0             0                  0             0  ...   \n",
       "4          0             0                  1             0  ...   \n",
       "\n",
       "   LiftAvailable  BED  VaastuCompliant  Microwave  GolfCourse  TV  \\\n",
       "0              1    0                1          0           0   0   \n",
       "1              1    0                1          0           0   0   \n",
       "2              0    0                0          0           0   0   \n",
       "3              1    0                0          0           0   0   \n",
       "4              1    0                0          0           0   0   \n",
       "\n",
       "   DiningTable  Sofa  Wardrobe  Refrigerator  \n",
       "0            0     0         0             0  \n",
       "1            0     0         0             0  \n",
       "2            0     0         0             0  \n",
       "3            0     0         0             0  \n",
       "4            0     0         0             0  \n",
       "\n",
       "[5 rows x 40 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_housing_raw = pandas.read_csv('Hyderabad.csv')\n",
    "data_housing_raw.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "ad823a8f-24ed-499c-a94f-123624427435",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Price</th>\n",
       "      <th>Area</th>\n",
       "      <th>Location</th>\n",
       "      <th>No. of Bedrooms</th>\n",
       "      <th>Resale</th>\n",
       "      <th>MaintenanceStaff</th>\n",
       "      <th>Gymnasium</th>\n",
       "      <th>SwimmingPool</th>\n",
       "      <th>LandscapedGardens</th>\n",
       "      <th>JoggingTrack</th>\n",
       "      <th>...</th>\n",
       "      <th>LiftAvailable</th>\n",
       "      <th>BED</th>\n",
       "      <th>VaastuCompliant</th>\n",
       "      <th>Microwave</th>\n",
       "      <th>GolfCourse</th>\n",
       "      <th>TV</th>\n",
       "      <th>DiningTable</th>\n",
       "      <th>Sofa</th>\n",
       "      <th>Wardrobe</th>\n",
       "      <th>Refrigerator</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2513</th>\n",
       "      <td>11000000</td>\n",
       "      <td>1460</td>\n",
       "      <td>Nacharam</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2514</th>\n",
       "      <td>26000000</td>\n",
       "      <td>1314</td>\n",
       "      <td>Manikonda</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2515</th>\n",
       "      <td>13300000</td>\n",
       "      <td>2625</td>\n",
       "      <td>Madhapur</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2516</th>\n",
       "      <td>10800000</td>\n",
       "      <td>2050</td>\n",
       "      <td>Hitech City</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2517</th>\n",
       "      <td>10400000</td>\n",
       "      <td>1805</td>\n",
       "      <td>Narsingi</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>...</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         Price  Area     Location  No. of Bedrooms  Resale  MaintenanceStaff  \\\n",
       "2513  11000000  1460     Nacharam                2       1                 9   \n",
       "2514  26000000  1314    Manikonda                2       1                 9   \n",
       "2515  13300000  2625     Madhapur                3       1                 9   \n",
       "2516  10800000  2050  Hitech City                3       0                 9   \n",
       "2517  10400000  1805     Narsingi                3       0                 9   \n",
       "\n",
       "      Gymnasium  SwimmingPool  LandscapedGardens  JoggingTrack  ...  \\\n",
       "2513          9             9                  9             9  ...   \n",
       "2514          9             9                  9             9  ...   \n",
       "2515          9             9                  9             9  ...   \n",
       "2516          9             9                  9             9  ...   \n",
       "2517          9             9                  9             9  ...   \n",
       "\n",
       "      LiftAvailable  BED  VaastuCompliant  Microwave  GolfCourse  TV  \\\n",
       "2513              9    9                9          9           9   9   \n",
       "2514              9    9                9          9           9   9   \n",
       "2515              9    9                9          9           9   9   \n",
       "2516              9    9                9          9           9   9   \n",
       "2517              9    9                9          9           9   9   \n",
       "\n",
       "      DiningTable  Sofa  Wardrobe  Refrigerator  \n",
       "2513            9     9         9             9  \n",
       "2514            9     9         9             9  \n",
       "2515            9     9         9             9  \n",
       "2516            9     9         9             9  \n",
       "2517            9     9         9             9  \n",
       "\n",
       "[5 rows x 40 columns]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_housing_raw.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "8453e914-9c63-4c3b-95ff-46b43bdb644d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Price</th>\n",
       "      <th>Area</th>\n",
       "      <th>Location</th>\n",
       "      <th>No. of Bedrooms</th>\n",
       "      <th>Resale</th>\n",
       "      <th>MaintenanceStaff</th>\n",
       "      <th>Gymnasium</th>\n",
       "      <th>SwimmingPool</th>\n",
       "      <th>LandscapedGardens</th>\n",
       "      <th>JoggingTrack</th>\n",
       "      <th>...</th>\n",
       "      <th>LiftAvailable</th>\n",
       "      <th>BED</th>\n",
       "      <th>VaastuCompliant</th>\n",
       "      <th>Microwave</th>\n",
       "      <th>GolfCourse</th>\n",
       "      <th>TV</th>\n",
       "      <th>DiningTable</th>\n",
       "      <th>Sofa</th>\n",
       "      <th>Wardrobe</th>\n",
       "      <th>Refrigerator</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6968000</td>\n",
       "      <td>1340</td>\n",
       "      <td>Nizampet</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>29000000</td>\n",
       "      <td>3498</td>\n",
       "      <td>Hitech City</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>6590000</td>\n",
       "      <td>1318</td>\n",
       "      <td>Manikonda</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>5739000</td>\n",
       "      <td>1295</td>\n",
       "      <td>Alwal</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5679000</td>\n",
       "      <td>1145</td>\n",
       "      <td>Kukatpally</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 40 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Price  Area     Location  No. of Bedrooms  Resale  MaintenanceStaff  \\\n",
       "0   6968000  1340     Nizampet                2       0                 0   \n",
       "1  29000000  3498  Hitech City                4       0                 0   \n",
       "2   6590000  1318    Manikonda                2       0                 0   \n",
       "3   5739000  1295        Alwal                3       1                 0   \n",
       "4   5679000  1145   Kukatpally                2       0                 0   \n",
       "\n",
       "   Gymnasium  SwimmingPool  LandscapedGardens  JoggingTrack  ...  \\\n",
       "0          1             1                  1             1  ...   \n",
       "1          1             1                  1             1  ...   \n",
       "2          1             0                  0             0  ...   \n",
       "3          0             0                  0             0  ...   \n",
       "4          0             0                  1             0  ...   \n",
       "\n",
       "   LiftAvailable  BED  VaastuCompliant  Microwave  GolfCourse  TV  \\\n",
       "0              1    0                1          0           0   0   \n",
       "1              1    0                1          0           0   0   \n",
       "2              0    0                0          0           0   0   \n",
       "3              1    0                0          0           0   0   \n",
       "4              1    0                0          0           0   0   \n",
       "\n",
       "   DiningTable  Sofa  Wardrobe  Refrigerator  \n",
       "0            0     0         0             0  \n",
       "1            0     0         0             0  \n",
       "2            0     0         0             0  \n",
       "3            0     0         0             0  \n",
       "4            0     0         0             0  \n",
       "\n",
       "[5 rows x 40 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_housing = process_housing(data_housing_raw)\n",
    "data_housing.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "4e4762e4-a75d-49d8-91bf-4b27b7505406",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Area</th>\n",
       "      <th>No. of Bedrooms</th>\n",
       "      <th>Resale</th>\n",
       "      <th>MaintenanceStaff</th>\n",
       "      <th>Gymnasium</th>\n",
       "      <th>SwimmingPool</th>\n",
       "      <th>LandscapedGardens</th>\n",
       "      <th>JoggingTrack</th>\n",
       "      <th>RainWaterHarvesting</th>\n",
       "      <th>IndoorGames</th>\n",
       "      <th>...</th>\n",
       "      <th>LiftAvailable</th>\n",
       "      <th>BED</th>\n",
       "      <th>VaastuCompliant</th>\n",
       "      <th>Microwave</th>\n",
       "      <th>GolfCourse</th>\n",
       "      <th>TV</th>\n",
       "      <th>DiningTable</th>\n",
       "      <th>Sofa</th>\n",
       "      <th>Wardrobe</th>\n",
       "      <th>Refrigerator</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-0.406630</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2.478470</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.436043</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-0.466792</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.667332</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 38 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       Area  No. of Bedrooms  Resale  MaintenanceStaff  Gymnasium  \\\n",
       "0 -0.406630                2       0                 0          1   \n",
       "1  2.478470                4       0                 0          1   \n",
       "2 -0.436043                2       0                 0          1   \n",
       "3 -0.466792                3       1                 0          0   \n",
       "4 -0.667332                2       0                 0          0   \n",
       "\n",
       "   SwimmingPool  LandscapedGardens  JoggingTrack  RainWaterHarvesting  \\\n",
       "0             1                  1             1                    1   \n",
       "1             1                  1             1                    1   \n",
       "2             0                  0             0                    0   \n",
       "3             0                  0             0                    0   \n",
       "4             0                  1             0                    0   \n",
       "\n",
       "   IndoorGames  ...  LiftAvailable  BED  VaastuCompliant  Microwave  \\\n",
       "0            1  ...              1    0                1          0   \n",
       "1            1  ...              1    0                1          0   \n",
       "2            1  ...              0    0                0          0   \n",
       "3            0  ...              1    0                0          0   \n",
       "4            0  ...              1    0                0          0   \n",
       "\n",
       "   GolfCourse  TV  DiningTable  Sofa  Wardrobe  Refrigerator  \n",
       "0           0   0            0     0         0             0  \n",
       "1           0   0            0     0         0             0  \n",
       "2           0   0            0     0         0             0  \n",
       "3           0   0            0     0         0             0  \n",
       "4           0   0            0     0         0             0  \n",
       "\n",
       "[5 rows x 38 columns]"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "features = process_features(data_housing)\n",
    "features.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "5c1d99fe-b8d1-45bc-a17f-728162b61b60",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 6968000, 29000000,  6590000, ...,  5600000,  7500000,  4600000],\n",
       "      dtype=int64)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "column_label = \"Price\"\n",
    "labels = data_housing[column_label].values\n",
    "labels"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "914607dc-5390-4114-8413-57b79f5747c0",
   "metadata": {},
   "source": [
    "## Building and training the neural network\n",
    "We're using LeakyReLu again to prevent the zero ReLu problem. Notice the last layer is a single unit to ensure we're outputting a scalar (price in this context).\n",
    "\n",
    "Exercise: Check if the model can actually learn the data by passing in a single training point."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "789d0517-87d5-4fda-b8d9-2e01fd27b74d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Model: \"sequential\"\n",
      "_________________________________________________________________\n",
      " Layer (type)                Output Shape              Param #   \n",
      "=================================================================\n",
      " dense (Dense)               (None, 38)                1482      \n",
      "                                                                 \n",
      " leaky_re_lu (LeakyReLU)     (None, 38)                0         \n",
      "                                                                 \n",
      " dropout (Dropout)           (None, 38)                0         \n",
      "                                                                 \n",
      " dense_1 (Dense)             (None, 256)               9984      \n",
      "                                                                 \n",
      " leaky_re_lu_1 (LeakyReLU)   (None, 256)               0         \n",
      "                                                                 \n",
      " dropout_1 (Dropout)         (None, 256)               0         \n",
      "                                                                 \n",
      " dense_2 (Dense)             (None, 128)               32896     \n",
      "                                                                 \n",
      " leaky_re_lu_2 (LeakyReLU)   (None, 128)               0         \n",
      "                                                                 \n",
      " dropout_2 (Dropout)         (None, 128)               0         \n",
      "                                                                 \n",
      " dense_3 (Dense)             (None, 1)                 129       \n",
      "                                                                 \n",
      "=================================================================\n",
      "Total params: 44,491\n",
      "Trainable params: 44,491\n",
      "Non-trainable params: 0\n",
      "_________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "# Building the model\n",
    "\n",
    "num_units_penultimate = 2**7\n",
    "model = Sequential()\n",
    "model.add(Dense(features.shape[1], input_shape=(features.shape[1],)))\n",
    "model.add(LeakyReLU(alpha = 0.01))\n",
    "model.add(Dropout(.2))\n",
    "model.add(Dense(2**8))\n",
    "model.add(LeakyReLU(alpha = 0.01))\n",
    "model.add(Dropout(.2))\n",
    "model.add(Dense(num_units_penultimate))\n",
    "model.add(LeakyReLU(alpha = 0.01))\n",
    "model.add(Dropout(.2))\n",
    "model.add(Dense(1)) # predicting number\n",
    "\n",
    "# Compiling the model. The metrics flag is added for the model to report the root mean squared error at each epoch.\n",
    "model.compile(\n",
    "    loss = 'mean_squared_error',\n",
    "    optimizer='adam',\n",
    "    metrics=[tensorflow.keras.metrics.RootMeanSquaredError()]\n",
    ")\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "92798259-1c6e-4155-a48a-07776892fb83",
   "metadata": {},
   "source": [
    "## Training the model\n",
    "\n",
    "Despite our terrible loss, it IS going down :D. However, the error starts to taper off, which implies our model may not be complicated enough. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "f7d72263-1d91-4a72-b336-953f2007ec2d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/300\n",
      "20/20 [==============================] - 1s 4ms/step - loss: 175264948551680.0000 - root_mean_squared_error: 13238767.0000\n",
      "Epoch 2/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 175264495566848.0000 - root_mean_squared_error: 13238750.0000\n",
      "Epoch 3/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 175262062870528.0000 - root_mean_squared_error: 13238658.0000\n",
      "Epoch 4/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 175251560333312.0000 - root_mean_squared_error: 13238261.0000\n",
      "Epoch 5/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 175218056232960.0000 - root_mean_squared_error: 13236996.0000\n",
      "Epoch 6/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 175134438588416.0000 - root_mean_squared_error: 13233837.0000\n",
      "Epoch 7/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 174962270797824.0000 - root_mean_squared_error: 13227330.0000\n",
      "Epoch 8/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 174630736232448.0000 - root_mean_squared_error: 13214792.0000\n",
      "Epoch 9/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 174079822790656.0000 - root_mean_squared_error: 13193931.0000\n",
      "Epoch 10/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 173217390002176.0000 - root_mean_squared_error: 13161208.0000\n",
      "Epoch 11/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 171930913079296.0000 - root_mean_squared_error: 13112243.0000\n",
      "Epoch 12/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 170142596071424.0000 - root_mean_squared_error: 13043872.0000\n",
      "Epoch 13/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 167687686717440.0000 - root_mean_squared_error: 12949428.0000\n",
      "Epoch 14/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 164540046114816.0000 - root_mean_squared_error: 12827316.0000\n",
      "Epoch 15/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 160478097571840.0000 - root_mean_squared_error: 12667995.0000\n",
      "Epoch 16/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 155755797807104.0000 - root_mean_squared_error: 12480216.0000\n",
      "Epoch 17/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 150227671580672.0000 - root_mean_squared_error: 12256740.0000\n",
      "Epoch 18/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 143534166376448.0000 - root_mean_squared_error: 11980575.0000\n",
      "Epoch 19/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 136551682015232.0000 - root_mean_squared_error: 11685533.0000\n",
      "Epoch 20/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 127966730256384.0000 - root_mean_squared_error: 11312238.0000\n",
      "Epoch 21/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 119569247109120.0000 - root_mean_squared_error: 10934772.0000\n",
      "Epoch 22/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 110852107665408.0000 - root_mean_squared_error: 10528633.0000\n",
      "Epoch 23/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 102518621208576.0000 - root_mean_squared_error: 10125148.0000\n",
      "Epoch 24/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 93901960511488.0000 - root_mean_squared_error: 9690302.0000\n",
      "Epoch 25/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 87007162269696.0000 - root_mean_squared_error: 9327763.0000\n",
      "Epoch 26/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 79854070398976.0000 - root_mean_squared_error: 8936110.0000\n",
      "Epoch 27/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 75417461456896.0000 - root_mean_squared_error: 8684323.0000\n",
      "Epoch 28/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 71539860963328.0000 - root_mean_squared_error: 8458124.0000\n",
      "Epoch 29/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 69193131098112.0000 - root_mean_squared_error: 8318241.0000\n",
      "Epoch 30/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 67831676796928.0000 - root_mean_squared_error: 8235999.0000\n",
      "Epoch 31/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 66722581184512.0000 - root_mean_squared_error: 8168389.0000\n",
      "Epoch 32/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 64640734199808.0000 - root_mean_squared_error: 8039946.0000\n",
      "Epoch 33/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 64493858062336.0000 - root_mean_squared_error: 8030807.0000\n",
      "Epoch 34/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 63525988859904.0000 - root_mean_squared_error: 7970319.0000\n",
      "Epoch 35/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 62910541856768.0000 - root_mean_squared_error: 7931616.5000\n",
      "Epoch 36/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 63175701561344.0000 - root_mean_squared_error: 7948314.5000\n",
      "Epoch 37/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 62420923973632.0000 - root_mean_squared_error: 7900691.5000\n",
      "Epoch 38/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 62011916419072.0000 - root_mean_squared_error: 7874764.5000\n",
      "Epoch 39/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 60672318636032.0000 - root_mean_squared_error: 7789244.0000\n",
      "Epoch 40/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 59733394325504.0000 - root_mean_squared_error: 7728738.0000\n",
      "Epoch 41/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 59365461590016.0000 - root_mean_squared_error: 7704898.5000\n",
      "Epoch 42/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 59563898306560.0000 - root_mean_squared_error: 7717765.0000\n",
      "Epoch 43/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 58870126870528.0000 - root_mean_squared_error: 7672687.0000\n",
      "Epoch 44/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 58016120438784.0000 - root_mean_squared_error: 7616831.5000\n",
      "Epoch 45/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 57517434470400.0000 - root_mean_squared_error: 7584025.0000\n",
      "Epoch 46/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 57125300600832.0000 - root_mean_squared_error: 7558128.0000\n",
      "Epoch 47/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 57739048910848.0000 - root_mean_squared_error: 7598621.5000\n",
      "Epoch 48/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 56014351106048.0000 - root_mean_squared_error: 7484273.5000\n",
      "Epoch 49/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 56391221903360.0000 - root_mean_squared_error: 7509409.0000\n",
      "Epoch 50/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 55186525519872.0000 - root_mean_squared_error: 7428763.5000\n",
      "Epoch 51/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 55505527504896.0000 - root_mean_squared_error: 7450203.0000\n",
      "Epoch 52/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 54117812666368.0000 - root_mean_squared_error: 7356481.0000\n",
      "Epoch 53/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 54248029028352.0000 - root_mean_squared_error: 7365326.0000\n",
      "Epoch 54/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 54575969075200.0000 - root_mean_squared_error: 7387555.0000\n",
      "Epoch 55/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 53975294410752.0000 - root_mean_squared_error: 7346788.0000\n",
      "Epoch 56/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 52339658457088.0000 - root_mean_squared_error: 7234615.5000\n",
      "Epoch 57/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 52392447967232.0000 - root_mean_squared_error: 7238263.0000\n",
      "Epoch 58/300\n",
      "20/20 [==============================] - 0s 7ms/step - loss: 51654221103104.0000 - root_mean_squared_error: 7187087.0000\n",
      "Epoch 59/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 50953495511040.0000 - root_mean_squared_error: 7138171.5000\n",
      "Epoch 60/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 51596557811712.0000 - root_mean_squared_error: 7183074.5000\n",
      "Epoch 61/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 49445286707200.0000 - root_mean_squared_error: 7031734.5000\n",
      "Epoch 62/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 50111677726720.0000 - root_mean_squared_error: 7078960.0000\n",
      "Epoch 63/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 48949444476928.0000 - root_mean_squared_error: 6996388.0000\n",
      "Epoch 64/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 49011566313472.0000 - root_mean_squared_error: 7000826.0000\n",
      "Epoch 65/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 46945863204864.0000 - root_mean_squared_error: 6851705.0000\n",
      "Epoch 66/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 48287960793088.0000 - root_mean_squared_error: 6948954.0000\n",
      "Epoch 67/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 47271928397824.0000 - root_mean_squared_error: 6875458.5000\n",
      "Epoch 68/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 45834204872704.0000 - root_mean_squared_error: 6770096.5000\n",
      "Epoch 69/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 46594216951808.0000 - root_mean_squared_error: 6825995.5000\n",
      "Epoch 70/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 44967812661248.0000 - root_mean_squared_error: 6705804.5000\n",
      "Epoch 71/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 43994738327552.0000 - root_mean_squared_error: 6632853.0000\n",
      "Epoch 72/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 45009797644288.0000 - root_mean_squared_error: 6708934.0000\n",
      "Epoch 73/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 43903877120000.0000 - root_mean_squared_error: 6626000.0000\n",
      "Epoch 74/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 43985494081536.0000 - root_mean_squared_error: 6632156.0000\n",
      "Epoch 75/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 43359863308288.0000 - root_mean_squared_error: 6584820.5000\n",
      "Epoch 76/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 43596031983616.0000 - root_mean_squared_error: 6602729.0000\n",
      "Epoch 77/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 42254404157440.0000 - root_mean_squared_error: 6500339.0000\n",
      "Epoch 78/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 41246378688512.0000 - root_mean_squared_error: 6422334.5000\n",
      "Epoch 79/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 41954960211968.0000 - root_mean_squared_error: 6477265.0000\n",
      "Epoch 80/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 40534206840832.0000 - root_mean_squared_error: 6366648.0000\n",
      "Epoch 81/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 40985287458816.0000 - root_mean_squared_error: 6401975.5000\n",
      "Epoch 82/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 40758753099776.0000 - root_mean_squared_error: 6384258.0000\n",
      "Epoch 83/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 40333081575424.0000 - root_mean_squared_error: 6350833.0000\n",
      "Epoch 84/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 39744696221696.0000 - root_mean_squared_error: 6304339.5000\n",
      "Epoch 85/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 39916155174912.0000 - root_mean_squared_error: 6317923.5000\n",
      "Epoch 86/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 38541874692096.0000 - root_mean_squared_error: 6208210.5000\n",
      "Epoch 87/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 38461704765440.0000 - root_mean_squared_error: 6201750.0000\n",
      "Epoch 88/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 37785276776448.0000 - root_mean_squared_error: 6146973.0000\n",
      "Epoch 89/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 38045499785216.0000 - root_mean_squared_error: 6168103.5000\n",
      "Epoch 90/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 37900297175040.0000 - root_mean_squared_error: 6156321.5000\n",
      "Epoch 91/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 37605064310784.0000 - root_mean_squared_error: 6132297.0000\n",
      "Epoch 92/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 37493940420608.0000 - root_mean_squared_error: 6123229.5000\n",
      "Epoch 93/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 36408622317568.0000 - root_mean_squared_error: 6033956.0000\n",
      "Epoch 94/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 36260496277504.0000 - root_mean_squared_error: 6021669.0000\n",
      "Epoch 95/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 35402182295552.0000 - root_mean_squared_error: 5949973.5000\n",
      "Epoch 96/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 34312250458112.0000 - root_mean_squared_error: 5857666.0000\n",
      "Epoch 97/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 34472001011712.0000 - root_mean_squared_error: 5871286.0000\n",
      "Epoch 98/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 35032062230528.0000 - root_mean_squared_error: 5918789.0000\n",
      "Epoch 99/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 34315889016832.0000 - root_mean_squared_error: 5857976.5000\n",
      "Epoch 100/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 34583091347456.0000 - root_mean_squared_error: 5880739.0000\n",
      "Epoch 101/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 33476415848448.0000 - root_mean_squared_error: 5785880.5000\n",
      "Epoch 102/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32839189921792.0000 - root_mean_squared_error: 5730549.0000\n",
      "Epoch 103/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 33282817261568.0000 - root_mean_squared_error: 5769126.0000\n",
      "Epoch 104/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32654474870784.0000 - root_mean_squared_error: 5714409.5000\n",
      "Epoch 105/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32361364324352.0000 - root_mean_squared_error: 5688705.0000\n",
      "Epoch 106/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32654300807168.0000 - root_mean_squared_error: 5714394.0000\n",
      "Epoch 107/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32249814712320.0000 - root_mean_squared_error: 5678892.0000\n",
      "Epoch 108/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32115315965952.0000 - root_mean_squared_error: 5667037.5000\n",
      "Epoch 109/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 32796970057728.0000 - root_mean_squared_error: 5726864.0000\n",
      "Epoch 110/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 31069917151232.0000 - root_mean_squared_error: 5574039.5000\n",
      "Epoch 111/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30412724240384.0000 - root_mean_squared_error: 5514773.5000\n",
      "Epoch 112/300\n",
      "20/20 [==============================] - 0s 7ms/step - loss: 30622877745152.0000 - root_mean_squared_error: 5533794.0000\n",
      "Epoch 113/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 30831368208384.0000 - root_mean_squared_error: 5552600.0000\n",
      "Epoch 114/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30026437230592.0000 - root_mean_squared_error: 5479638.5000\n",
      "Epoch 115/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30380237258752.0000 - root_mean_squared_error: 5511827.0000\n",
      "Epoch 116/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 29645353254912.0000 - root_mean_squared_error: 5444754.5000\n",
      "Epoch 117/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30305593327616.0000 - root_mean_squared_error: 5505051.5000\n",
      "Epoch 118/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 29292763283456.0000 - root_mean_squared_error: 5412279.0000\n",
      "Epoch 119/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30426236190720.0000 - root_mean_squared_error: 5515998.0000\n",
      "Epoch 120/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 30271395069952.0000 - root_mean_squared_error: 5501944.5000\n",
      "Epoch 121/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 29185374420992.0000 - root_mean_squared_error: 5402349.0000\n",
      "Epoch 122/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 29007781298176.0000 - root_mean_squared_error: 5385887.0000\n",
      "Epoch 123/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 29046446489600.0000 - root_mean_squared_error: 5389475.5000\n",
      "Epoch 124/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 28949969108992.0000 - root_mean_squared_error: 5380517.5000\n",
      "Epoch 125/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 29108434108416.0000 - root_mean_squared_error: 5395223.5000\n",
      "Epoch 126/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 29287642038272.0000 - root_mean_squared_error: 5411806.0000\n",
      "Epoch 127/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 28164625530880.0000 - root_mean_squared_error: 5307035.5000\n",
      "Epoch 128/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27800654315520.0000 - root_mean_squared_error: 5272632.5000\n",
      "Epoch 129/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27746300329984.0000 - root_mean_squared_error: 5267475.5000\n",
      "Epoch 130/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27398454116352.0000 - root_mean_squared_error: 5234353.5000\n",
      "Epoch 131/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27598465794048.0000 - root_mean_squared_error: 5253424.0000\n",
      "Epoch 132/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27431020789760.0000 - root_mean_squared_error: 5237463.0000\n",
      "Epoch 133/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27564141707264.0000 - root_mean_squared_error: 5250156.5000\n",
      "Epoch 134/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27606376251392.0000 - root_mean_squared_error: 5254177.0000\n",
      "Epoch 135/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27812469669888.0000 - root_mean_squared_error: 5273753.0000\n",
      "Epoch 136/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 28084954726400.0000 - root_mean_squared_error: 5299524.0000\n",
      "Epoch 137/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27395599892480.0000 - root_mean_squared_error: 5234080.5000\n",
      "Epoch 138/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26968691048448.0000 - root_mean_squared_error: 5193139.0000\n",
      "Epoch 139/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27201841922048.0000 - root_mean_squared_error: 5215538.5000\n",
      "Epoch 140/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27010887843840.0000 - root_mean_squared_error: 5197200.0000\n",
      "Epoch 141/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26990857945088.0000 - root_mean_squared_error: 5195272.5000\n",
      "Epoch 142/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25884482338816.0000 - root_mean_squared_error: 5087679.5000\n",
      "Epoch 143/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26805580857344.0000 - root_mean_squared_error: 5177410.5000\n",
      "Epoch 144/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26201777242112.0000 - root_mean_squared_error: 5118767.0000\n",
      "Epoch 145/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25647034400768.0000 - root_mean_squared_error: 5064290.0000\n",
      "Epoch 146/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26283398397952.0000 - root_mean_squared_error: 5126733.5000\n",
      "Epoch 147/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25752263196672.0000 - root_mean_squared_error: 5074669.0000\n",
      "Epoch 148/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26052562780160.0000 - root_mean_squared_error: 5104171.0000\n",
      "Epoch 149/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27106843033600.0000 - root_mean_squared_error: 5206423.0000\n",
      "Epoch 150/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26452328185856.0000 - root_mean_squared_error: 5143182.5000\n",
      "Epoch 151/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26588085223424.0000 - root_mean_squared_error: 5156363.5000\n",
      "Epoch 152/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25738247929856.0000 - root_mean_squared_error: 5073287.5000\n",
      "Epoch 153/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26545999577088.0000 - root_mean_squared_error: 5152281.0000\n",
      "Epoch 154/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26232425021440.0000 - root_mean_squared_error: 5121760.0000\n",
      "Epoch 155/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26508080971776.0000 - root_mean_squared_error: 5148600.0000\n",
      "Epoch 156/300\n",
      "20/20 [==============================] - 0s 7ms/step - loss: 26724005838848.0000 - root_mean_squared_error: 5169526.5000\n",
      "Epoch 157/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26425572720640.0000 - root_mean_squared_error: 5140581.0000\n",
      "Epoch 158/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26169537724416.0000 - root_mean_squared_error: 5115617.0000\n",
      "Epoch 159/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 27657496428544.0000 - root_mean_squared_error: 5259039.5000\n",
      "Epoch 160/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26191861907456.0000 - root_mean_squared_error: 5117798.5000\n",
      "Epoch 161/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25749788557312.0000 - root_mean_squared_error: 5074425.0000\n",
      "Epoch 162/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26821445812224.0000 - root_mean_squared_error: 5178942.5000\n",
      "Epoch 163/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24695095164928.0000 - root_mean_squared_error: 4969416.0000\n",
      "Epoch 164/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26277184536576.0000 - root_mean_squared_error: 5126127.5000\n",
      "Epoch 165/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24894418976768.0000 - root_mean_squared_error: 4989430.5000\n",
      "Epoch 166/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26848127877120.0000 - root_mean_squared_error: 5181518.0000\n",
      "Epoch 167/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24590929625088.0000 - root_mean_squared_error: 4958924.0000\n",
      "Epoch 168/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24800818888704.0000 - root_mean_squared_error: 4980042.0000\n",
      "Epoch 169/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25455100952576.0000 - root_mean_squared_error: 5045305.0000\n",
      "Epoch 170/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 26234555727872.0000 - root_mean_squared_error: 5121968.0000\n",
      "Epoch 171/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24795664089088.0000 - root_mean_squared_error: 4979524.5000\n",
      "Epoch 172/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 25968322281472.0000 - root_mean_squared_error: 5095912.5000\n",
      "Epoch 173/300\n",
      "20/20 [==============================] - 0s 4ms/step - loss: 24870538706944.0000 - root_mean_squared_error: 4987037.0000\n",
      "Epoch 174/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25951566036992.0000 - root_mean_squared_error: 5094268.0000\n",
      "Epoch 175/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25344039976960.0000 - root_mean_squared_error: 5034286.5000\n",
      "Epoch 176/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25374738087936.0000 - root_mean_squared_error: 5037334.5000\n",
      "Epoch 177/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25132856770560.0000 - root_mean_squared_error: 5013268.0000\n",
      "Epoch 178/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26909928849408.0000 - root_mean_squared_error: 5187478.0000\n",
      "Epoch 179/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24710286934016.0000 - root_mean_squared_error: 4970944.5000\n",
      "Epoch 180/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25940180598784.0000 - root_mean_squared_error: 5093150.5000\n",
      "Epoch 181/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26171997683712.0000 - root_mean_squared_error: 5115857.5000\n",
      "Epoch 182/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25562001178624.0000 - root_mean_squared_error: 5055888.0000\n",
      "Epoch 183/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24590172553216.0000 - root_mean_squared_error: 4958848.0000\n",
      "Epoch 184/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24886217015296.0000 - root_mean_squared_error: 4988608.5000\n",
      "Epoch 185/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25976530534400.0000 - root_mean_squared_error: 5096717.5000\n",
      "Epoch 186/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25636867407872.0000 - root_mean_squared_error: 5063286.0000\n",
      "Epoch 187/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26352398893056.0000 - root_mean_squared_error: 5133459.0000\n",
      "Epoch 188/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24594727567360.0000 - root_mean_squared_error: 4959307.0000\n",
      "Epoch 189/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25532731228160.0000 - root_mean_squared_error: 5052992.5000\n",
      "Epoch 190/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24887552901120.0000 - root_mean_squared_error: 4988742.5000\n",
      "Epoch 191/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26154943643648.0000 - root_mean_squared_error: 5114190.5000\n",
      "Epoch 192/300\n",
      "20/20 [==============================] - 0s 7ms/step - loss: 25373838409728.0000 - root_mean_squared_error: 5037245.0000\n",
      "Epoch 193/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25417949904896.0000 - root_mean_squared_error: 5041622.0000\n",
      "Epoch 194/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 24840620736512.0000 - root_mean_squared_error: 4984036.5000\n",
      "Epoch 195/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25592613306368.0000 - root_mean_squared_error: 5058914.0000\n",
      "Epoch 196/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25128838627328.0000 - root_mean_squared_error: 5012867.5000\n",
      "Epoch 197/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25654003236864.0000 - root_mean_squared_error: 5064978.0000\n",
      "Epoch 198/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25109987328000.0000 - root_mean_squared_error: 5010986.5000\n",
      "Epoch 199/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25647416082432.0000 - root_mean_squared_error: 5064328.0000\n",
      "Epoch 200/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24972521111552.0000 - root_mean_squared_error: 4997251.5000\n",
      "Epoch 201/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26673957306368.0000 - root_mean_squared_error: 5164683.5000\n",
      "Epoch 202/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25050346422272.0000 - root_mean_squared_error: 5005032.0000\n",
      "Epoch 203/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25495546626048.0000 - root_mean_squared_error: 5049311.5000\n",
      "Epoch 204/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25163011719168.0000 - root_mean_squared_error: 5016274.5000\n",
      "Epoch 205/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26578788548608.0000 - root_mean_squared_error: 5155462.0000\n",
      "Epoch 206/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25682329468928.0000 - root_mean_squared_error: 5067773.5000\n",
      "Epoch 207/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25897952346112.0000 - root_mean_squared_error: 5089003.0000\n",
      "Epoch 208/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24214975283200.0000 - root_mean_squared_error: 4920871.5000\n",
      "Epoch 209/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24008416296960.0000 - root_mean_squared_error: 4899838.5000\n",
      "Epoch 210/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24495268036608.0000 - root_mean_squared_error: 4949269.5000\n",
      "Epoch 211/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25510990053376.0000 - root_mean_squared_error: 5050840.5000\n",
      "Epoch 212/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25071728984064.0000 - root_mean_squared_error: 5007168.0000\n",
      "Epoch 213/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24871316750336.0000 - root_mean_squared_error: 4987115.0000\n",
      "Epoch 214/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25236502216704.0000 - root_mean_squared_error: 5023594.5000\n",
      "Epoch 215/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24769812496384.0000 - root_mean_squared_error: 4976928.0000\n",
      "Epoch 216/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24511730679808.0000 - root_mean_squared_error: 4950932.5000\n",
      "Epoch 217/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25413835292672.0000 - root_mean_squared_error: 5041213.5000\n",
      "Epoch 218/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24388604788736.0000 - root_mean_squared_error: 4938482.0000\n",
      "Epoch 219/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24598584229888.0000 - root_mean_squared_error: 4959696.0000\n",
      "Epoch 220/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24224789954560.0000 - root_mean_squared_error: 4921868.5000\n",
      "Epoch 221/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25114280198144.0000 - root_mean_squared_error: 5011415.0000\n",
      "Epoch 222/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25047018242048.0000 - root_mean_squared_error: 5004699.5000\n",
      "Epoch 223/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24828339814400.0000 - root_mean_squared_error: 4982804.5000\n",
      "Epoch 224/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25387235016704.0000 - root_mean_squared_error: 5038574.5000\n",
      "Epoch 225/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 25186900377600.0000 - root_mean_squared_error: 5018655.0000\n",
      "Epoch 226/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24963278962688.0000 - root_mean_squared_error: 4996326.5000\n",
      "Epoch 227/300\n",
      "20/20 [==============================] - 0s 7ms/step - loss: 24834142633984.0000 - root_mean_squared_error: 4983386.5000\n",
      "Epoch 228/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25742318501888.0000 - root_mean_squared_error: 5073689.0000\n",
      "Epoch 229/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 25001400991744.0000 - root_mean_squared_error: 5000140.0000\n",
      "Epoch 230/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25366395617280.0000 - root_mean_squared_error: 5036506.5000\n",
      "Epoch 231/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26052743135232.0000 - root_mean_squared_error: 5104189.0000\n",
      "Epoch 232/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24313405112320.0000 - root_mean_squared_error: 4930862.5000\n",
      "Epoch 233/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25216092733440.0000 - root_mean_squared_error: 5021563.0000\n",
      "Epoch 234/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24698169589760.0000 - root_mean_squared_error: 4969725.5000\n",
      "Epoch 235/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25651138527232.0000 - root_mean_squared_error: 5064695.5000\n",
      "Epoch 236/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25090450259968.0000 - root_mean_squared_error: 5009037.0000\n",
      "Epoch 237/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25293576208384.0000 - root_mean_squared_error: 5029272.0000\n",
      "Epoch 238/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25259531042816.0000 - root_mean_squared_error: 5025886.0000\n",
      "Epoch 239/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26495403687936.0000 - root_mean_squared_error: 5147368.5000\n",
      "Epoch 240/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24669210017792.0000 - root_mean_squared_error: 4966811.0000\n",
      "Epoch 241/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25464745754624.0000 - root_mean_squared_error: 5046260.5000\n",
      "Epoch 242/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24732265086976.0000 - root_mean_squared_error: 4973154.5000\n",
      "Epoch 243/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25040093446144.0000 - root_mean_squared_error: 5004007.5000\n",
      "Epoch 244/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24667519713280.0000 - root_mean_squared_error: 4966640.5000\n",
      "Epoch 245/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25202689835008.0000 - root_mean_squared_error: 5020228.0000\n",
      "Epoch 246/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24455667515392.0000 - root_mean_squared_error: 4945267.0000\n",
      "Epoch 247/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25607031226368.0000 - root_mean_squared_error: 5060339.0000\n",
      "Epoch 248/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25105658806272.0000 - root_mean_squared_error: 5010554.5000\n",
      "Epoch 249/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24698855358464.0000 - root_mean_squared_error: 4969794.5000\n",
      "Epoch 250/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24752248848384.0000 - root_mean_squared_error: 4975163.0000\n",
      "Epoch 251/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24758479486976.0000 - root_mean_squared_error: 4975789.5000\n",
      "Epoch 252/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24605926359040.0000 - root_mean_squared_error: 4960436.0000\n",
      "Epoch 253/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25095741374464.0000 - root_mean_squared_error: 5009565.0000\n",
      "Epoch 254/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24243857260544.0000 - root_mean_squared_error: 4923805.0000\n",
      "Epoch 255/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25105524588544.0000 - root_mean_squared_error: 5010541.5000\n",
      "Epoch 256/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24360838496256.0000 - root_mean_squared_error: 4935670.0000\n",
      "Epoch 257/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24715362041856.0000 - root_mean_squared_error: 4971454.5000\n",
      "Epoch 258/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24890040123392.0000 - root_mean_squared_error: 4988992.0000\n",
      "Epoch 259/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24904193802240.0000 - root_mean_squared_error: 4990410.0000\n",
      "Epoch 260/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24763913207808.0000 - root_mean_squared_error: 4976335.5000\n",
      "Epoch 261/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25520777461760.0000 - root_mean_squared_error: 5051809.5000\n",
      "Epoch 262/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24990065885184.0000 - root_mean_squared_error: 4999006.5000\n",
      "Epoch 263/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25693075275776.0000 - root_mean_squared_error: 5068833.5000\n",
      "Epoch 264/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24217357647872.0000 - root_mean_squared_error: 4921113.5000\n",
      "Epoch 265/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 24288891502592.0000 - root_mean_squared_error: 4928376.0000\n",
      "Epoch 266/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24882351964160.0000 - root_mean_squared_error: 4988221.5000\n",
      "Epoch 267/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25712645898240.0000 - root_mean_squared_error: 5070764.0000\n",
      "Epoch 268/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 24262706462720.0000 - root_mean_squared_error: 4925719.0000\n",
      "Epoch 269/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25332107182080.0000 - root_mean_squared_error: 5033101.0000\n",
      "Epoch 270/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 23523485548544.0000 - root_mean_squared_error: 4850101.5000\n",
      "Epoch 271/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25166656569344.0000 - root_mean_squared_error: 5016638.0000\n",
      "Epoch 272/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24370399412224.0000 - root_mean_squared_error: 4936638.5000\n",
      "Epoch 273/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24491352653824.0000 - root_mean_squared_error: 4948874.0000\n",
      "Epoch 274/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25672550449152.0000 - root_mean_squared_error: 5066808.5000\n",
      "Epoch 275/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24727957536768.0000 - root_mean_squared_error: 4972721.5000\n",
      "Epoch 276/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24940354994176.0000 - root_mean_squared_error: 4994032.0000\n",
      "Epoch 277/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25461784576000.0000 - root_mean_squared_error: 5045967.0000\n",
      "Epoch 278/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24541029990400.0000 - root_mean_squared_error: 4953890.5000\n",
      "Epoch 279/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25479507607552.0000 - root_mean_squared_error: 5047723.0000\n",
      "Epoch 280/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25525982593024.0000 - root_mean_squared_error: 5052324.5000\n",
      "Epoch 281/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25547138662400.0000 - root_mean_squared_error: 5054417.5000\n",
      "Epoch 282/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24961316028416.0000 - root_mean_squared_error: 4996130.0000\n",
      "Epoch 283/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24484304125952.0000 - root_mean_squared_error: 4948161.5000\n",
      "Epoch 284/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24752932519936.0000 - root_mean_squared_error: 4975232.0000\n",
      "Epoch 285/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24659552632832.0000 - root_mean_squared_error: 4965838.5000\n",
      "Epoch 286/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24124520923136.0000 - root_mean_squared_error: 4911672.0000\n",
      "Epoch 287/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25014252339200.0000 - root_mean_squared_error: 5001425.0000\n",
      "Epoch 288/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25095072382976.0000 - root_mean_squared_error: 5009498.0000\n",
      "Epoch 289/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 23871109464064.0000 - root_mean_squared_error: 4885807.0000\n",
      "Epoch 290/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24546109292544.0000 - root_mean_squared_error: 4954403.0000\n",
      "Epoch 291/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24757944713216.0000 - root_mean_squared_error: 4975735.5000\n",
      "Epoch 292/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24434687606784.0000 - root_mean_squared_error: 4943145.5000\n",
      "Epoch 293/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24451185901568.0000 - root_mean_squared_error: 4944814.0000\n",
      "Epoch 294/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 24915522617344.0000 - root_mean_squared_error: 4991545.0000\n",
      "Epoch 295/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 24601285361664.0000 - root_mean_squared_error: 4959968.5000\n",
      "Epoch 296/300\n",
      "20/20 [==============================] - 0s 6ms/step - loss: 23827717292032.0000 - root_mean_squared_error: 4881364.5000\n",
      "Epoch 297/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25003378606080.0000 - root_mean_squared_error: 5000338.0000\n",
      "Epoch 298/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 26364461711360.0000 - root_mean_squared_error: 5134633.5000\n",
      "Epoch 299/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 23107217653760.0000 - root_mean_squared_error: 4806996.5000\n",
      "Epoch 300/300\n",
      "20/20 [==============================] - 0s 5ms/step - loss: 25197293862912.0000 - root_mean_squared_error: 5019690.5000\n"
     ]
    }
   ],
   "source": [
    "history = model.fit(features, labels, epochs=300, batch_size=num_units_penultimate, verbose = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "ed1edab0-7337-4235-9b72-a650f22979c0",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Min. Loss: 23107217653760.0\n",
      "Min. Error: 4806996.5\n"
     ]
    }
   ],
   "source": [
    "print(\"Min. Loss:\", min(history.history['loss']))\n",
    "print(\"Min. Error:\", min(history.history['root_mean_squared_error']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "fa9376f4-853a-442b-976e-cfc5850b80b7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "77/77 [==============================] - 0s 2ms/step - loss: 22735147237376.0000 - root_mean_squared_error: 4768139.0000\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[22735147237376.0, 4768139.0]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "model.evaluate(features, labels)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c3fde3da-c163-47f4-9297-e3dcd99c1e9b",
   "metadata": {},
   "source": [
    "# Visually checking the model's performance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "eec0c044-c864-4458-ae19-a4717c912527",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "77/77 [==============================] - 0s 2ms/step\n"
     ]
    }
   ],
   "source": [
    "array_predictions = model.predict(features) # The predictions are an array of 1point arrays (see the ravel function)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "39a2b295-033f-4311-ba9f-0c4e93cc316c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x213242f3e20>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 10))\n",
    "plt.scatter(array_predictions.reshape(-1), labels, alpha = 1, s = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "e49ec28d-37cd-468d-aa06-cc07361fc3f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x2132636f310>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1440x720 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# The array predictions \n",
    "residuals = numpy.subtract(array_predictions.reshape(-1), labels)\n",
    "plt.figure(figsize=(20, 10))\n",
    "plt.scatter(range(len(residuals)), residuals, alpha = 1, s = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d2c22884-351b-4ced-8428-174e7f1698dc",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
